package br.com.iswe.gerador.velocity.gerador.gwt;

import br.com.iswe.gerador.velocity.gerador.GeradorGenerico;
import br.com.iswe.gerador.velocity.gerador.GeradorHandler;
import br.com.iswe.gerador.velocity.info.InfoEntidadeImpl;
import br.com.iswe.gerador.velocity.info.InfoGerador;
import br.com.iswe.gerador.velocity.patterns.GwtPattern;

public class GeradorEntryPointModule extends GeradorGenerico {
	
	public static final String NOME_GERADOR = "geradorEntryPointModule";
	private static final String GERADOR_GWT_PASTA_SAIDA = "gerador.gwt.pasta.saida";
	
	GwtPattern gwtPattern = new GwtPattern();
	
	public GeradorEntryPointModule() {
		this.templateName = "GWT-ENTRY-POINT-MODULE.vm";
		this.handler = new GeradorHandler(){
			public String getNomeArquivo(InfoEntidadeImpl infoEntidade) {
				return gwtPattern.getEntryPointModuleName(infoEntidade) + ".gwt.xml";
			}
			public String getPackageObjeto(InfoEntidadeImpl infoEntidade) {
				return "web";
			}
			public boolean shouldGenerateFile(InfoGerador infoGerador, String arquivo) {
				return infoGerador.shouldGenerateFile(arquivo, "gwt");
			}
		};
	}
	
	@Override
	public void inicio(InfoGerador infoGerador) {
		super.inicio(infoGerador);
		this.pastaSaida = infoGerador.getPropriedade(GERADOR_GWT_PASTA_SAIDA);
	}
}
